<template>
  <div class="about">
    <h1>This is an about page</h1>
  </div>
</template>
<script>
export default {
    data() {
        return {
            
        }
    },
    created() {

        // 对象发生了浅拷贝   对象里面的简单数据类型和复杂数据类型  都变了
        // let obj1 = {
        //     name:'张三',
        //     age:18,
        //     hubby:['打游戏','听音乐','写代码']
        // }
        // var obj2 = obj1
        // obj2.name = '李四',
        // obj2.hubby[0] = '打篮球'
        // console.log(obj1.name);
        // console.log(obj2.name);
        // console.log(obj1.hubby);
        // console.log(obj2.hubby);

    //    是按照值进行访问   num2更改不会影响num1  他们不共享内存地址   深拷贝
        let num1  =10
        let num2 = num1
          num2 = 20
          console.log(num1);//10
          console.log(num2); //20


           // 用  Object.assign()  实现浅拷贝

    //  使用Object.assign()  如果拷贝的属性是简单数据类型 ，Object.assign()  对那个属性而言，发生的是深拷贝
    //  使用Object.assign()  如果拷贝的属性是复杂数据类型 ，Object.assign()  对那个属性而言，发生的是浅拷贝
       let obj1 = {
            name:'张三',
            age:18,
            hubby:['打游戏','听音乐','写代码']
        }
        var obj2 = Object.assign({},obj1)
        obj2.name = '李四',
        obj2.hubby[0] = '打篮球'
        console.log(obj1.name);
        console.log(obj2.name);
        console.log(obj1.hubby);
        console.log(obj2.hubby);



    //   使用数组 方法  concat()  实现浅拷贝   Array.prototype.concat

    // 数据里面 如果某个值时简单数据类型  发生的还是深拷贝 对数据里的复杂数据类型而言 发生的是浅拷贝
        // let arr = ['任春旭',25,{hubby:'吃零食'}]

        // let arr1 = arr.concat()
        // arr1[0] = '王泽'
        // arr1[2].hubby = '写代码'
        // console.log(arr[0]);
        // console.log(arr1[0]);
        // console.log(arr[2].hubby);
        // console.log(arr1[2].hubby);

        // 使用数组方法  slice实现浅拷贝   Array.prototype.slice
        // let arr = ['任春旭',25,{hubby:'吃零食'}]

        // let arr1 = arr.slice()
        // arr1[0] = '王泽'
        // arr1[2].hubby = '写代码'
        // console.log(arr[0]);
        // console.log(arr1[0]);
        // console.log(arr[2].hubby);
        // console.log(arr1[2].hubby);


        // 把浅拷贝变成深拷贝   JSON.parse(JSON.stringify(objA))

        let objA = {
           name:'Tom'
       }
       let objB = JSON.parse(JSON.stringify(objA))
       objB.name = 'Jack'
        console.log(objA.name);
        console.log(objB.name);

     

    },


   


    

    


}
</script>
